Embodiments of the inventive subject matter generally relate to the field of computing, and, more particularly, to transforming an XBRL instance into an XML data model instance.
The eXtensible Business Reporting Language (XBRL) is a language for the electronic communication of business and financial data. XBRL is one of a family of XML languages.
XBRL defines a syntax in which a fact can be reported as the value of a well defined reporting concept within a particular context. The XBRL framework splits business reporting information into two components: XBRL instances and taxonomies.
XBRL instances contain the facts being reported while the taxonomies define the concepts being communicated by the facts. The combination of an XBRL instance and its supporting taxonomies, and additional linkbases constitute an XBRL business report.
A taxonomy is comprised of an eXtensible Markup Language (XML) Schema and all of the linkbases contained in that schema or that extend the schema. XBRL defines an approach for extending an XML Schema using the annotation/appInfo feature to incorporate references to XBRL linkbases. The XML schema is referred to as a taxonomy schema. The linkbases and the taxonomy schema are referenced in accordance with the XML Linking Language (Xlink). Xlink is a specification that defines functions for creating internal and external references, or links, within and between XML documents. Xlink provides for simple links and extended links Simple links connect two resources. Extended links connect multiple resources, remote or local, with multiple arcs. An arc is information about an origin, destination, and link between two resources.
In XBRL terminology, a concept is a definition of a reporting term. Concepts manifest as XML Schema element definitions. In the taxonomy schema, a concept is given a concrete name and a type. The type defines the kind of data types allowed for facts measured according to the concept definition. For example, a “cash” concept would typically have a monetary type. This declares that when cash is reported, its value will be monetary. In contrast, a “accountingPoliciesNote” concept would typically have a string type so that, when the “accountingPoliciesNote” is reported in an XBRL instance, its value would be interpreted as a string of characters. Additional constraints on how concepts can be used are documented by additional XBRL attributes on the XML Schema element definitions that correspond to the concepts.
The linkbases in a taxonomy further document the meaning of the concepts by expressing relationships between concepts (inter-concept relationships) and by relating concepts to their documentation. A linkbase is a collection of extended links. There are five different kinds of extended links used in XBRL taxonomies to document concepts: definition, calculation, presentation, label and reference. The first three types of extended link express inter-concept relationships, and the last two express relationships between concept and their documentation. The linkbases are typically separate documents from the taxonomy schema. The taxonomy schema contains a linkbaseRefto point to a linkbase document if the linkbase is to be part of the taxonomy built around the taxonomy schema.
While a taxonomy defines reporting concepts, it does not contain the actual values of facts based on the defined concepts. The fact values are contained in XBRL instances and are referred to as “facts.” Besides the actual value of a fact, such as “cash is 500,000,” the XBRL instance provides contextual information necessary for interpreting the fact values. For numeric facts, the XBRL instance also documents measurement accuracy and measurement units.
An XBRL instance can be supported by more than one taxonomy. Also, taxonomies can be interconnected, extending and modifying each other in various ways. Generally, it is necessary to consider multiple related taxonomies together when interpreting an XBRL instance. The set of related taxonomies is called a Discoverable Taxonomy Set (DTS). A DTS is a collection of taxonomy schemas and linkbases.